Hadoop通过bind9配置DNS服务器替代hosts的IP映射(ubuntu版) 您所在的位置:网站首页 ubuntu 配置dns 命令行 Hadoop通过bind9配置DNS服务器替代hosts的IP映射(ubuntu版)

Hadoop通过bind9配置DNS服务器替代hosts的IP映射(ubuntu版)

#Hadoop通过bind9配置DNS服务器替代hosts的IP映射(ubuntu版)| 来源: 网络整理| 查看: 265

最开始搭建hadoop集群时,我是用hosts的ip映射实现的各个主机名与IP之间的映射关系。

但是,hosts的ip映射的缺点是,当我们在集群里面增加一个机器时,所有机器都要更新他们的hosts文件,这样就显得很繁琐。

通过查找资料,可以使用bind9配置DNS来替代原先的hosts的IP映射,当需要添加新主机时,只需要更改DNS服务器中bind的正向解析文件和反向解析文件即可。大大减轻了操作负担。

具体实现如下:

环境:Ubuntu 14.04.4 LTS 

以三台主机为例:

192.168.1.200   delab-master-01 192.168.1.201   delab-slave-01 192.168.1.202   delab-slave-02

首先,如果你已经配置了hosts的ip映射,应该把各台机器上的ip映射删除。

1、安装bind9

选择一台主机作为DNS服务器(这里以delab-master-01),安装bind9

sudo apt-get install bind9 2、配置bind文件

bind9默认安装在/etc/bind/目录下,我们打开named.conf 可以看见:

include "/etc/bind/named.conf.options";include "/etc/bind/named.conf.local";include "/etc/bind/named.conf.default-zones"; 它将本机的需要的配置独立在name.conf.local这个文件里面,在name.conf里面用include把name.conf.local包含进来,所以我们只需要修改named.conf.local即可。

配置如下:

zone "hadoop.com"{type master;file "/etc/bind/db.hadoop.com";};zone "1.168.192.in-addr.arpa"{type master;file "/etc/bind/db.192.168.1";};

这里hadoop.com是自己设置的域名,可以自行修改。这里的db.hadoop.com 对应着正向解析文件。

db.192.168.1对应反向解析文件。注意: 1.168.192 和db.192.168.1是刚好反过来的。

在/etc/bind/目录下分别新建db.hadoop.com和db.192.168.1文件。

在db.hadoop.com 中增加:

@ IN SOA localhost. root.localhost. (1 ; Serial604800 ; Refresh86400 ; Retry2419200 ; Expire604800 ) ; Negative Cache TTL;@ IN NS localhost.@ IN A 127.0.0.1delab-master-01 IN A 192.168.1.200delab-slave-01 IN A 192.168.1.201delab-slave-02 IN A 192.168.1.202 在db.192.168.1中增加:

;$TTL 604800@ IN SOA hadoop.com. root.hadoop.com. (1 ; Serial604800 ; Refresh86400 ; Retry2419200 ; Expire604800 ) ; Negative Cache TTL;@ IN NS hadoop.com.200 IN PTR delab-master-01.hadoop.com.201 IN PTR delab-slave-01.hadoop.com.202 IN PTR delab-slave-02.hadoop.com. 3、修改所有机器中的dns服务器指向我们的dns服务器(即delab-master-01)

注意:每台机器的dns服务器指向都需要修改。

这里可以直接修改/etc/resolv.conf文件,增加nameserver 192.168.1.200 (这里的ip是我们DNS服务器的IP地址)

但是,在重新启动机器后,/etc/resolv.conf文件会被复写,所以不建议这么做。

建议直接修改/etc/network/interfaces文件。

重要:如果你使用的是ubuntu桌面版,网络配置可能是通过Network-Manager完成的,那么,应该先关掉Network-Manager(sudo stop network-manager),并将 /etc/NetworkManager/nm-system-settings.conf 文件中的managed=false:

[ifupdown]managed=false 最后在interfaces文件中添加,dns-nameservers 192.168.1.200和dns-search hadoop.com

auto eth0iface eth0 inet staticaddress 192.168.1.200netmask 255.255.255.0gateway 192.168.1.1dns-nameservers 192.168.1.200dns-search hadoop.com 这里dns-search hadoop.com作用很重要,如果没有这个,那么我们访问各个主机时,需要把完整输入对应域名,如:delab-slave-01.hadoop.com ,配置了dns-search之后,我们就可以直接输入delab-slave-01来访问相应主机。这样的话,配置完DNS后,我们hadoop的相关配置文件就都不修改即可使用。

配置完后,我们应该更新一下网络配置:

sudo ifdown --force eth0 && sudo ip addr flush dev eth0 && sudo ifup --force eth0

4、重启bind

sudo /etc/init.d/bind9 restart 我们可以通过nslookup来查看配置是否成功:(正向解析和反向解析)

通过ping 主机名:

至此,我们DNS服务器就已经配置完成了,如果有新的主机加入集群,我们只需要配置DNS服务器中的bind的正向解析文件和反向解析文件即可。

当然,如果我们dns服务器挂了,整个集群就没法通信了,所以可以配置主从DNS服务器来实现HA(High Available),具体可参考以下博文:

How To Configure BIND as a Private Network DNS Server on Ubuntu 16.04

https://www.digitalocean.com/community/tutorials/how-to-configure-bind-as-a-private-network-dns-server-on-ubuntu-16-04



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有